package com.zy.cat.service;

import java.util.List;
import java.util.Map;

import com.zy.cat.entity.dev.resp.CatDevUserInfoResp.TLJInfo;
import com.zy.cat.entity.dtk.GoodsDetail;
import com.zy.cat.entity.dtk.GoodsTopic.Opts;
import com.zy.cat.entity.dtk.resp.GoodsActivityListResp;
import com.zy.cat.entity.dtk.resp.GoodsActivityResp;
import com.zy.cat.entity.dtk.resp.GoodsListResp;
import com.zy.cat.entity.dtk.resp.GoodsNineResp;
import com.zy.cat.entity.dtk.resp.GoodsRankListResp;
import com.zy.cat.entity.dtk.resp.GoodsTopicListResp;
import com.zy.cat.entity.hdk.HdkGoodsItem;
import com.zy.cat.entity.mall.resp.CatBansResp;
import com.zy.cat.entity.mall.resp.CatDouYinVideoResp;
import com.zy.cat.entity.mall.resp.CatGoodsCategoryResp;
import com.zy.cat.entity.mall.resp.CatHdkDuoyinResp;
import com.zy.cat.entity.mall.resp.CatHdkRatesUrlResp;
import com.zy.cat.entity.mall.resp.CatHomeTemplateResp;
import com.zy.cat.entity.mall.resp.CatTalentArticleResp;
import com.zy.cat.entity.mall.resp.CatTalentInfoResp;
import com.zy.cat.entity.mall.resp.FlashSaleGoodsResp;
import com.zy.cat.entity.mall.resp.TKSelectionResp;
import com.zy.cat.entity.mall.resp.TKTLJConvertResp;
import com.zy.cat.entity.mall.resp.TKTLJGoodsResp;
import com.zy.cat.entity.mall.resp.ZTKShopResp;
import com.zy.cat.entity.resp.Pages;
import com.zy.cat.entity.resp.ResultPage;
import com.zy.cat.entity.tb.resp.TKMaterialResp;
import com.zy.cat.entity.tb.resp.TKTQGResp;
import com.zy.cat.entity.wy.CatShopCouponInfo;
import com.zy.cat.entity.wy.CatShopItemResp;
import com.zy.cat.entity.wy.TKConvertResp;

public interface CatMallService {

	/**
	 * 
	 * @info 获取首页banner条信息（db:11,key:CAT_BANNERS,添加缓存10分钟），排序：order by stype,bcode
	 * @author Link
	 * @date 2019-11-12 16:22
	 * @return
	 */
	List<CatBansResp> getBanners(Integer sex);

	/**
	 * 
	 * @info 根据性别获取对应选品库的商品信息,淘宝API,（db:11,key:CAT_TODAY_TJ_+#key,同参数添加缓存10分钟）
	 * @author lipengchao
	 * @date 2019-11-13 08:46
	 * @param rtype
	 * @param sex
	 * @param pages
	 * @return
	 */
	ResultPage<TKSelectionResp> getTodayTJList(int rtype, int sex, Pages pages);

	/**
	 * 
	 * @info 获取物料商品信息,淘宝API,（db:11,key:CAT_WL_+#key,同参数添加缓存10分钟）
	 * @author lipengchao
	 * @date 2019-11-13 10:00
	 * @param rtype
	 * @param imei
	 * @param sex
	 * @param materialId
	 * @param pages
	 * @return
	 */
	ResultPage<TKMaterialResp> getWLList(int rtype, String imei, int sex, int materialId, Pages pages);

	/**
	 * 
	 * @info 咚咚抢,淘宝API,（db:11,key:CAT_DDQ_+#key,同参数添加缓存10分钟）
	 * @author lipengchao
	 * @date 2019-11-13 11:39
	 * @param rtype
	 * @param stime
	 * @param pages
	 * @return
	 */
	List<TKTQGResp> getTQGList(int rtype, String stime, Pages pages);

	/**
	 * 
	 * @info 商品高佣转链,维易API,
	 * @author lipengchao
	 * @date 2019-11-13 11:59
	 * @param rtype
	 * @param vscode
	 * @param cid
	 * @param imei
	 * @param imsi
	 * @param sid
	 * @param pid
	 * @return
	 */
	TKConvertResp getGoodsConvert(Integer ctype, int rtype, int ftype, String vscode, String cid, String imei,
			String imsi, long fcode, String sid, String rid, String pid);

	/**
	 * 
	 * @info 获取商品详情,大淘客API,（db:11,key:CAT_GOODS_DETAIL_+#sid,同参数添加缓存1天）
	 * @author lipengchao
	 * @date 2019-11-13 13:51
	 * @param rtype
	 * @param sid
	 * @return
	 */
	GoodsDetail getGoodsDetail(int rtype, String sid);

	/**
	 * 
	 * @info 获取9.9包邮商品,大淘客API[http://www.dataoke.com/pmc/api-d.html?id=15]（db:11,key:CAT_DTK_9.9_GOODS_+#rtype,同参数添加缓存1小时）
	 * @author lipengchao
	 * @date 2019-11-13 14:09
	 * @param rtype
	 * @param nineCid 9.9精选的类目id，分类id请求详情：-1-精选，1 -居家百货，2 -美食，3 -服饰，4 -配饰，5 -美妆，6
	 *                -内衣，7 -母婴，8 -箱包，9 -数码配件，10 -文娱车品
	 * @param pageId  传入对应页码
	 * @return
	 */
	GoodsNineResp getGoodsNine(int rtype, int nineCid, String pageId, int pageSize);

	/**
	 * 
	 * @info 获取大淘客排行榜数据,查数据库：zy_dtk_rank_shops（db:11,key:CAT_DTK_RANK_GOODS_+#,同参数添加缓存10分钟）
	 * @author lipengchao
	 * @date 2019-11-13 14:28
	 * @param ctype 榜单类型(1.实时榜、 2.全天榜、 3.热推榜（热推榜一级类目[cat]无效）、4.复购榜)
	 * @param rtype 应用平台(0.安卓、1.IOS)
	 * @param cat   1 -女装，2 -母婴，3 -美妆，4 -居家日用，5 -鞋品，6 -美食，7 -文娱车品，8 -数码家电，9 -男装，10
	 *              -内衣，11 -箱包，12 -配饰，13 -户外运动，14 -家装家纺
	 * @return
	 */
	List<GoodsRankListResp> dtkRankList(int ctype, int rtype, String cat);

	/**
	 * 
	 * @info 超级搜索,大淘客API[http://www.dataoke.com/pmc/api-d.html?id=14]
	 * @author lipengchao
	 * @date 2019-11-13 14:54
	 * @param rtype
	 * @param stype
	 * @param pageId
	 * @param sword
	 * @param otype  排序方式(1.销量（低到高）、2.销量（高到低）、3.价格（低到高）、4.价格（高到低）)
	 * @return
	 */

	ResultPage<GoodsListResp> search(int isCoupon, int rtype, int stype, String pageId, Integer pageSize, String sword,
			int otype);

	/**
	 * 
	 * @info 商品热搜记录，大淘客API[http://www.dataoke.com/pmc/api-d.html?id=4]（db:11,key:CAT_HOT_SEARCH,缓存30分钟）
	 * @author lipengchao
	 * @date 2019-11-13 15:03
	 * @param rtype
	 * @return
	 */
	List<String> hotSearch(int rtype, Integer pageNum, Integer pageSize);

	/**
	 * 
	 * @info 获取搜索提示词，大淘客API[http://www.dataoke.com/pmc/api-d.html?id=18]（db:11,key:CAT_SEARCH_WORD_+#,缓存10分钟）
	 * @author lipengchao
	 * @date 2019-11-13 15:27
	 * @param rtype
	 * @param stype
	 * @param kw
	 * @return
	 */
	List<Map<String, Object>> getSearchWord(int rtype, int stype, String kw);

	/**
	 * 
	 * @info 获取猜你喜欢，大淘客API[http://www.dataoke.com/pmc/api-d.html?id=16]
	 *       （db:11,key:CAT_GOODS_LIKE_+#,同参数添加缓存10分钟）
	 * @author lipengchao
	 * @date 2019-11-13 15:57
	 * @param rtype
	 * @param imei
	 * @param imsi
	 * @param sid
	 * @param size
	 * @return
	 */
	List<GoodsListResp> getGoodsLike(int rtype, String imei, String imsi, String sid, int size);

	/**
	 * 
	 * @info 获取大淘客商品信息，数据库zy_dtk_sGoods（db:11,key:CAT_DTK_GOODS_+#,同参数添加缓存10分钟）
	 * @author lipengchao
	 * @date 2019-11-13 14:41
	 * @param rtype
	 * @param cat
	 * @param subcat
	 * @param otype
	 * @param pages
	 * @return
	 */
	ResultPage<GoodsListResp> dtkGoodsList(int rtype, String cat, String subcat, int otype, Pages pages);

	/**
	 * 
	 * @info 获取大淘客精选专辑列表信息，大淘客API[http://www.dataoke.com/pmc/api-d.html?id=21]
	 *       （db:11,key:CAT_GOODS_TOPIC_+#,添加缓存1天）
	 * @author lipengchao
	 * @date 2019-11-13 16:30
	 * @return
	 */
	List<Opts> getGoodsTopic();

	/**
	 * 
	 * @info 获取大淘客精选专辑商品信息，大淘客API[http://www.dataoke.com/pmc/api-d.html?id=22]
	 *       （db:11,key:CAT_GOODS_TOPIC_LIST_+#,同参数添加缓存10分钟）
	 * @author lipengchao
	 * @date 2019-11-13 17:28
	 * @param rtype
	 * @param pageSize
	 * @param topicId
	 * @param pageId
	 * @return
	 */
	GoodsTopicListResp getGoodsTopicList(int rtype, int pageSize, String topicId, String pageId);

	/**
	 * 
	 * @info 获取大淘客热门活动列表，大淘客API[http://www.dataoke.com/pmc/api-d.html?id=19]
	 *       （db:11,key:CAT_ACTS_LIST_+#,同参数添加缓存1小时）
	 * @author lipengchao
	 * @date 2019-11-13 17:45
	 * @param rtype
	 * @return
	 */
	GoodsActivityResp getActs(int rtype);

	/**
	 * 
	 * @info 获取大淘客热门活动商品列表，大淘客API[http://www.dataoke.com/pmc/api-d.html?id=20]
	 *       （db:11,key:CAT_ACTS_GOODS_LIST_+#,同参数添加缓存10分钟）
	 * @author lipengchao
	 * @date 2019-11-13 18:07
	 * @param rtype
	 * @param pageSize
	 * @param pageId
	 * @param actId
	 * @return
	 */
	GoodsActivityListResp getActsGoodsList(int rtype, int pageSize, String pageId, String actId);

	/**
	 * 
	 * @info 获取零元购商品信息，淘宝API查询（db:11,key:CAT_ZERO_GOODS_LIST_+#,同参数添加缓存10分钟）
	 * @author lipengchao
	 * @date 2019-11-14 17:14
	 * @param rtype
	 * @param cid
	 * @param sex
	 * @param pages
	 * @return
	 */
	ResultPage<TKSelectionResp> getZoroGoodsList(int rtype, String cid, int sex, Pages pages);

	/**
	 * 
	 * @info 获取3元无门槛商品信息，淘宝API查询（db:11,key:CAT_THREE_GOODS_LIST_+#,同参数添加缓存10分钟）
	 * @author lipengchao
	 * @date 2019-11-14 17:18
	 * @param rtype
	 * @param cid
	 * @param sex
	 * @param pages
	 * @return
	 */
	ResultPage<TKSelectionResp> getThreeGoodsList(int rtype, String cid, int sex, Pages pages);

	/**
	 * 
	 * @info 获取15元补贴商品信息，淘宝API查询（db:11,key:CAT_FIFTEEN_GOODS_LIST_+#,同参数添加缓存10分钟）
	 * @author lipengchao
	 * @date 2019-11-14 17:18
	 * @param rtype
	 * @param cid
	 * @param sex
	 * @param pages
	 * @return
	 */
	ResultPage<TKSelectionResp> getFifteenGoodsList(int rtype, String cid, int sex, Pages pages);

	/**
	 * 
	 * @info 每日惊喜商品列表信息，淘宝API查询（db:11,key:CAT_DAILY_SURPRISE_GOODS_LIST_+#,同参数添加缓存10分钟）
	 * @author lipengchao
	 * @date 2019-11-15 09:43
	 * @param rtype
	 * @param cid
	 * @param sex
	 * @param pages
	 * @return
	 */
	ResultPage<TKSelectionResp> getDailySurpriseGoodsList(Integer rtype, String cid, Integer sex, Pages pages);

	/**
	 * 
	 * @info 大额券商品列表信息，淘宝API查询（db:11,key:CAT_SUPERCOUPON_GOODS_LIST_+#,同参数添加缓存10分钟）
	 * @author lipengchao
	 * @date 2019-11-15 09:43
	 * @param rtype
	 * @param pages
	 * @return
	 */
	ResultPage<TKSelectionResp> getSupercouponGoodsList(Integer rtype, Pages pages);

	/**
	 * 获取商品分类分类列表
	 * 
	 * @param type 0-0元购, 1-3元购，2-每日惊喜，3-15元购
	 * @return
	 */
	List<Map<String, String>> getFavoritesList(String type);

	/**
	 * 获取拆淘客猜你喜欢接口
	 * 
	 * @author lipengchao
	 * @param rtype
	 * @param imei
	 * @param imsi
	 * @param sid
	 * @param idfa
	 * @param page
	 * @return
	 */
	List<ZTKShopResp> getShopLike(Integer rtype, String imei, String imsi, String sid, String idfa, int page,
			int pageSize);

	/**
	 * 查询首页中部两个banner对应的商品列表
	 * 
	 * @author lipengchao
	 * @apiNote 已完成
	 * @date 2019-12-10 10:34:55
	 * @param rtype
	 * @param fid
	 * @param pages
	 * @return
	 */
	ResultPage<TKSelectionResp> getBannerGoodsList(Integer rtype, String fid, Pages pages);

	/**
	 * 查询限时一元抢购商品列表
	 * 
	 * @author lipengchao
	 * @apiNote 已完成
	 * @date 2019-12-10 10:34:55
	 * @param rtype
	 * @return
	 */
	List<FlashSaleGoodsResp> getFlashSaleGoodsList(Integer rtype);

	/**
	 * 查询限时抢购下方商品列表
	 * 
	 * @author lipengchao
	 * @apiNote 已完成
	 * @date 2019-12-10 10:34:55
	 * @param rtype
	 * @param sex
	 * @param pages
	 * @return
	 */
	ResultPage<TKSelectionResp> getFlashLowerGoodsList(Integer rtype, Integer sex, Pages pages);

	/**
	 * 抢购商品
	 * 
	 * @author lipengchao
	 * @apiNote 已完成
	 * @date 2019-12-10 10:34:55
	 * @param rtype
	 * @param pid
	 * @param sid
	 * @return
	 */
	Boolean getFlashSaleGoods(Integer rtype, String pid, String sid);

	/**
	 * 获取用户领取的优惠券列表
	 * 
	 * @author lipengchao
	 * @apiNote 已完成
	 * @date 2019-12-10 10:34:55
	 * @param rtype
	 * @param pid
	 * @return
	 */
	List<TKSelectionResp> getGoodsCouponList(Integer rtype, String pid);

	/**
	 * 获取商品类目列表
	 * 
	 * @author lipengchao
	 * @apiNote 已完成
	 * @date 2020-05-12 02:23:13
	 * @param rtype
	 * @param vscode
	 * @return
	 */
	List<CatGoodsCategoryResp> getCategoryList(Integer rtype, int vscode);

	/**
	 * 获取九趣猫淘礼金商品
	 * 
	 * @info
	 * @author Link
	 * @date 2020-06-16 18:11
	 * @param rtype
	 * @param pages
	 * @param ttype
	 * @return
	 */
	ResultPage<TKTLJGoodsResp> tljGoodsList(String pid, Integer rtype, Pages pages, Integer ttype);

	/**
	 * 
	 * @info
	 * @author Link
	 * @date 2020-06-17 11:13
	 * @param ctype
	 * @param rtype
	 * @param vscode
	 * @param cid
	 * @param imei
	 * @param imsi
	 * @param fcode
	 * @param sid
	 * @param pid
	 * @param ttype
	 * @return
	 */
	TKTLJConvertResp getTLJConvert(TKTLJGoodsResp goods, Integer ctype, Integer rtype, String vscode, String cid,
			String imei, String imsi, Long fcode, String sid, String pid, Integer ttype);

	/**
	 * 获取单个淘礼金商品信息
	 * 
	 * @info
	 * @author Link
	 * @date 2020-06-17 11:25
	 * @param sid
	 * @return
	 */
	TKTLJGoodsResp getTLJGoods(String sid);

	/**
	 * 微信商品分享
	 * 
	 * @info
	 * @author Link
	 * @date 2020-06-17 19:49
	 * @param rtype
	 * @param stype
	 * @param pid
	 * @param p
	 * @return
	 */
	String getGoodsWeShare(int ctype, int rtype, int stype, String pid, String p);

	/**
	 * 转链搜索
	 * 
	 * @author lipengchao
	 * @date 2020-06-23 09:43:14
	 * @param ctype
	 * @param rtype
	 * @param vscode
	 * @param cid
	 * @param imei
	 * @param imsi
	 * @param rid
	 * @return
	 */
	GoodsListResp getGoodsClipboardSearch(Integer ctype, Integer rtype, String vscode, String cid, String rid,
			String para);

	/**
	 * 好单库盖高佣转链
	 * 
	 * @author lipengchao
	 * @date 2020-08-03 04:47:31
	 * @param itemId
	 * @return
	 */
	CatHdkRatesUrlResp hdkRatesurl(String itemId);

	/**
	 * 获取首页渲染模板数据
	 * 
	 * @author lipengchao
	 * @date 2020-08-10 02:46:42
	 * @param sex
	 * @return
	 */
	CatHomeTemplateResp getHomeTemplateList(String pid, Integer sex);

	/**
	 * 好单库关键词搜索
	 * 
	 * @author lipengchao
	 * @date 2020-08-20 10:31:58
	 * @param keyword
	 * @param cid
	 * @param sort
	 * @param pageNum
	 * @param pageSize
	 * @return
	 */
	ResultPage<HdkGoodsItem> getHdkKeywordItems(String keyword, Integer cid, Integer sort, Integer pageNum,
			Integer pageSize);

	/**
	 * 获取达人说页面数据
	 * 
	 * @author lipengchao
	 * @date 2020-08-31 04:54:06
	 * @param talentcat
	 * @return
	 */
	CatTalentInfoResp getTalentInfo(Integer talentcat);

	/**
	 * 查询达人文章数据
	 * 
	 * @author lipengchao
	 * @date 2020-08-31 05:02:25
	 * @param id
	 * @return
	 */
	CatTalentArticleResp getTalentArticle(Integer id);

	/**
	 * 好单库商品列表
	 * 
	 * @author lipengchao
	 * @date 2020-08-31 05:44:03
	 * @param nav
	 * @param cid
	 * @param sort
	 * @param pageNum
	 * @param pageSize
	 * @return
	 */
	ResultPage<HdkGoodsItem> getHdkItemList(Integer nav, Integer cid, Integer sort, Integer pageNum, Integer pageSize);

	/**
	 * 查询抖音视频
	 * 
	 * @author lipengchao
	 * @date 2020-09-01 09:42:10
	 * @param itemId
	 * @param pageNum
	 * @return
	 */
	List<CatDouYinVideoResp> getHdkDuoyinItems(String itemId, Integer pageNum);

	/**
	 * @author lipengchao
	 * @date 2020-09-23 03:34:25
	 * @param rtype
	 * @param vscode
	 * @param sid
	 * @return
	 */
	TKConvertResp getGoodsConvertInfo(Integer rtype, String vscode, String sid);

	/**
	 * 查询好单库排行榜
	 * 
	 * @author lipengchao
	 * @date 2020-09-23 04:04:47
	 * @param rtype
	 * @param stype
	 * @param back
	 * @param min_id
	 * @param cid
	 * @param item_type
	 * @return
	 */
	List<HdkGoodsItem> hdkRankList(Integer rtype, Integer stype, Integer back, Integer min_id, Integer cid,
			Integer item_type);

	/*
	 * 查询好单库抖货商品API
	 */
	List<CatHdkDuoyinResp> getHdkDuoyinData(Integer rtype, Integer cat_id, Integer min_id, Integer back);

	/**
	 * @author lipengchao
	 * @apiNote 获取用户淘礼金信息
	 * @date 2021-01-06 02:37:53 
	 * @param pid
	 * @return
	 */
	TLJInfo getTLJInfo(String pid);


	/**
	   * 淘宝店铺商品查询
	 * @param pageno
	 * @param userId
	 * @return
	 */
	ResultPage<CatShopItemResp> getShopItem(Integer ctype,Integer rtype,String pageno, String userId);

	/**
	 * 查询淘宝天猫店铺优惠券
	 * @param ctype
	 * @param rtype
	 * @param vscode
	 * @param cid
	 * @param imei
	 * @param imsi
	 * @param rid
	 * @param itemId
	 * @param sellerId
	 * @return
	 */
	CatShopCouponInfo getShopCoupon(Integer rtype,Integer ctype,String itemId,String sellerId);
}
